package basicx.range


/*
        Java中空指针异常NullPointerException
        Kotlin更多地把运行时可能会出现的null问题，以编译时错误的方式，提前在编译期强迫我们
        重视起来，而不是等到运行时报错，防范于未然，提高了我们程序的健壮性。

  对于null值问题，Kotlin反其道而行之，除非另有规定，变量不可为null值，这样一来，运行时崩溃从根源上得到解决。      */

private fun main() {
    var strNull: String? = "" // 加个？ 表示可空类型
    strNull = null
    if (strNull != null) {
        strNull.length
    }
    println(strNull?.length)
    println(strNull?.length ?: 10)

//        value?. notNull ?: if null
    println(strNull?.let { it ->
        it
    } ?: 10)

    strNull = "aaa"
    // 类型推断
    println(strNull.length)
    println(strNull!!.length) //强制忽略

}
